草庐IT

Unity3D UI

全部标签

Unity设计模式——原型模式

        原型模式(Prototype)用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。原型模式其实就是从一个对象再创建另外一个可定制的对象,而且不需知道任何创建的细节。原型类Prototype:abstractclassPrototype{privatestringid;publicPrototype(stringid){this.id=id;}publicstringId{get{returnid;}}//抽象类关键有这样一个Clone方法publicabstractPrototypeClone();} ConcretePrototypel类,具体原型classCon

Unity Shader:tex2D函数详解

tex2D函数作用:CG程序中用来在一张贴图中对一个点进行采样的方法,返回一个float4,通过一个二维uv坐标在纹理上,获取该处值。 float4Tex2D(sampler2Dtex,float2s):s-需进行查找的纹理坐标(uv)其中根据纹理的类型不同,获取的值的含义也不一样,普通纹理一般代表的是该点的颜色值//该像素的真实颜色值half4c=tex2D(_MainTex,IN.uv_MainTex);bump类型纹理上存储的值代表的含义是该点的法向量//从_Bump纹理中提取法向信息tex2D(_Bump,IN.uv_Bump) tex2D数值精度问题:有时候数据被适应到0.f~1.f

Unity中协程(IEnumerator)的使用

目录一、问题的出现二、协程(IEnumerator)的使用方式1、协程的开启2、yieldreturn3、协程的终止三、问题的解决一、问题的出现今天在学unity的时候,想要给角色添加一个大力药水,捡到之后增加力量,把敌人砍滴飞起。效果实现了,但是问题也来了:这药水效果一直存在,砍谁都是一刀斩了!这并不是我想要的效果,我希望是:药水有一段持续时间,在结束后恢复正常状态,这样才合情合理吗。二、协程(IEnumerator)的使用方式当我们的任务不能在一帧之内完成,而需要持续一段时间的时候,需要用一种方式将进程从主线程中剥离,放在另一条分支上(伪)。我们希望他不要停,但是又不要影响其他进程的运行。

Unity3d 实现UI节点切换顺序SiblingIndex(上移、下移和快速置顶、置底)

usingUnityEngine;publicclassSiblingTest:MonoBehaviour{publicvoidClickTop(GameObjectobj){obj.transform.SetAsFirstSibling();}publicvoidClickBottom(GameObjectobj){obj.transform.SetAsLastSibling();}publicvoidClickMoveUp(GameObjectobj){intidx=obj.transform.GetSiblingIndex();if(idx>0)obj.transform.SetSibl

解决Unity打包时,Android SDK 报错问题

报错内容应该包括类似如下信息:CommandInvokationFailure:FailedtoupdateAndroidSDKpackagelist.java.lang.UnsupportedClassVersionError:com/android/prefs/AndroidLocationsProviderhasbeencompiledbyamorerecentversionoftheJavaRuntime(classfileversion55.0),thisversionoftheJavaRuntimeonlyrecognizesclassfileversionsupto52.0不一定

Unity计算2个物体之间距离 (2个三维向量之间)

  publicfloatGetDistance(Vector3startPoint,Vector3endPoint)  {    floatdistance=(startPoint-endPoint).magnitude;    returndistance;  }  方法2  publicdoubleGetDistance(Vector3startPoint,Vector3endPoint)  {    doublex=System.Math.Abs(endPoint.x-startPoint.x);    doubley=System.Math.Abs(endPoint.y-startP

【Unity】自带的录屏插件Recorder

目录Recorder简介Recorder导入Recorder使用Recorder简介Recorder是Unity官方的录屏插件,可以直接录制Game窗口,还可以录制不同相机的视图。不仅可以直接生成视频、帧动画图、还可以制作gif和animation。Recorder导入菜单栏Windows→PackageManager,左上角选择UnityRegistry,右侧搜索栏查找recorder:找到该插件,右下角点击Install,安装完成即可使用。Recorder使用菜单栏Windows→General→Recorder→RecorderWindow即可打开该录屏插件的控制窗口:一般选择Movie

Unity连接Mysql数据库(详细教程)

Unity连接Mysql详解1.需要在unity中引用一个MySql.Data.dll文件(如果你安装的mysql中找不到这个文件,可以直接从网上下载一个)把这个文件放在Assets-Plugins下在代码中引用usingMySql.Data.MySqlClient;本地连接Mysql的字符串stringconstr=“Database=zzz;DataSource=127.0.0.1;user=root;Password=123456;pooling=false;charset=utf8;port=3306”;例:连接Mysql并进行模糊查找usingMySql.Data.MySqlClie

unity如何禁用物体上的其他脚本

unity如何禁用物体上的其他脚本一、把该物体组件的enabled设置为falsetransform.GetComponent().enabled=false;这种方法不太靠谱,可能禁用脚本后还会执行,其他组件完全可以。二、使用Destroy函数Destroy(transform.GetComponent());触发后直接销毁这个函数。三、使用bool值进行控制boolIsSucceed;第一个脚本执行完后,就用IsSucceed锁死,不让再执行后面的操作。

Unity-- Gfx.WaitForPresentOnGfxThread占用CPU过高导致帧率低

一个新建的URP项目,里面只有几个测试模型,结果在3070的笔记本电脑上,只能运行到20帧!FPS=20!这实在受不了,开始Profiler分析原因。发现Gfx.WaitForPresentOnGfxThread占用较高。应该是它导致了帧率这么低。死磕了一下午,终于找到原因,解决了。下面详细说明一下:Gfx.WaitForPresentOnGfxThread这个东西,是CPU已经准备好绘制下一帧,但是GPU还没准备好,应用程序等待GPU所花费的时间。附一个官网的说明:https://docs.unity3d.com/Manual/profiler-markers.htmlhttps://doc